home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / meltdown.lha / FILLED-LINES / Line.bak next >
Encoding:
Text File  |  1988-07-19  |  7.9 KB  |  342 lines

  1. *****************************************************************************
  2. *                                                                           *
  3. *                   Filled Line Intro                           *
  4. *                                                                           *
  5. *  Start Date : 1/3/91                                                      *
  6. * Last Update : 1/3/91                                                      *
  7. *                                  Code : Melt Down *
  8. *                                                                           *
  9. *****************************************************************************
  10.  
  11. ; Include the macros
  12.  
  13.     Incdir    Df1:
  14.     Include    Source/Macro
  15.  
  16. *****************************************************************************
  17.  
  18. ; Dont forget to use chip ram
  19.  
  20.     Chip
  21.     
  22. *****************************************************************************
  23.  
  24. ; Kill the operating system for good mesure
  25.  
  26.     Kill        
  27.     
  28. *****************************************************************************
  29.  
  30. ; Load custom and set up copper list
  31.  
  32.     Lea    Custom,A5
  33.     Move.l    #Copper,Cop1lch(a5)
  34.     
  35. *****************************************************************************
  36.  
  37. ; Clear Some Memory
  38.  
  39.     Blitwait
  40.     Move.l    #$70000,Bltdpth(a5)
  41.     Move.l    #-1,Bltafwm(a5)
  42.     Move.w    #0,Bltdmod(a5)
  43.     Move.l    #$01000000,Bltcon0(a5)
  44.     Move.w    #256*64+60,Bltsize(a5)
  45.  
  46. *****************************************************************************
  47.  
  48. ; Main routine here
  49.  
  50. Mouse
  51.     Move.l    $dff004,d2
  52.     And.l    #$1ff00,d2    
  53.     Cmp.l    #$100,d2
  54.     Bne.s    Mouse
  55.  
  56.     Move.w    #$f0f,$dff180
  57.     Eor.l    #$4000,Bit1
  58.     Eor.l    #$4000,Bit2
  59.     Eor.l    #$4000,ScreenPtr
  60.  
  61.     Bsr    Clear
  62.     Bsr    UpDateAll
  63.     Bsr    Conect
  64.     Move.w    #$000,$dff180
  65.     Tstmice    Mouse                ; Pressed the mouse
  66.     
  67. *****************************************************************************
  68.  
  69. ; Return operating system and go back to user
  70.  
  71.     Heal
  72.     Clr.l    D0                ; No error
  73.     Rts
  74.     
  75. *****************************************************************************
  76.  
  77. Clear
  78.     Blitwait                ; Blitter Nasty But Why Do
  79.     Move.l    #$01000000,Bltcon0(a5)        ; Clear
  80.     Move.w    #$0000,Bltdmod(a5)        ; Skip No Bytes
  81.     Move.l    ScreenPtr,A1
  82.     Move.l    a1,Bltdpth(A5)            ; Set Dest
  83.     Move.l    #-1,Bltafwm(a5)            ; Use All Bits
  84.     Move.w    #100*64+20,Bltsize(a5)        ; Fill Half Screen
  85.     Movem.l    a0-a6/d0-d7,-(a7)        ; Save The Regs
  86.     Movem.l    RegFiller(pc),a1-a6/d0-d7    ; Clear The Regs
  87.     Move.l    ScreenPtr,A0
  88.     Add.l    #8000,A0
  89.  
  90. ; 4000/56 = 71.14 Rnd Up = 72
  91.     Rept    72                ; Rept it 58 times
  92.     Movem.l    a1-a6/d0-d7,-(a0)        ; Clear 56 Butes
  93.     Endr                    ; End repeat
  94.     Movem.l    (a7)+,a0-a6/d0-d7        ; Restor Regs
  95.     Rts
  96. RegFiller
  97.     Dcb.l    16,0
  98.     Rts
  99.  
  100. *****************************************************************************
  101.  
  102. Conect
  103.     Move.w    #40,$60(a5)            ; Screen In Bytes
  104.     Move.l    #-$8000,$72(a5)            ; Set to line ??????
  105.     Move.l    #-1,$44(a5)            ; The Mask
  106.     Move.l    ScreenPtr,A0
  107.     Move.l    #40,D5
  108.     Lea    XSin,A1    
  109.     Lea    YSin,A2
  110.     Lea    Form1+2,a3
  111.     Lea    Form1Con,A4
  112.     Move.w    (a4)+,d7
  113. DoLines
  114.     Move.w    (a4)+,d6            ; Get Offset        
  115.     Move.w    (a3,d6),d0            ; Get X
  116.     Move.w    2(a3,d6),d1            ; Get Y
  117.     Move.w    4(a3,d6),d2            ; Get X1
  118.     Move.w    6(a3,d6),d3            ; Get Y1
  119.     Move.w    (a1,d0),d0            ; Get X Val
  120.     Move.w    (a2,d1),d1            ; Get Y Val
  121.     Add.w    (a1,d2),d0            ; Add X Val
  122.     Add.w    (a2,d3),d1            ; Add Y Val
  123.     Movem.l    d0/d1,-(A7)
  124.     Move.w    (a4)+,d6            
  125.     Move.w    (a3,d6),d0            
  126.     Move.w    2(a3,d6),d1            
  127.     Move.w    4(a3,d6),d2            
  128.     Move.w    6(a3,d6),d3            
  129.     Move.w    (a1,d0),d0            
  130.     Move.w    (a2,d1),d1            
  131.     Add.w    (a1,d2),d0            
  132.     Add.w    (a2,d3),d1            
  133.     Movem.l    (a7)+,d2/d3
  134.     Movem.l    a0/d5,-(a7)
  135.     cmp.w    d1,d3
  136.     bgt.s    line1
  137.     exg    d0,d2
  138.     exg    d1,d3
  139.     beq.s    out
  140. line1:    move.w    d1,d4
  141.     muls    d5,d4
  142.     move.w    d0,d5
  143.     add.l    a0,d4
  144.     asr.w    #3,d5
  145.     add.w    d5,d4
  146.     moveq    #0,d5
  147.     sub.w    d1,d3
  148.     sub.w    d0,d2
  149.     bpl.s    line2
  150.     moveq    #1,d5
  151.     neg.w    d2
  152. line2:    move.w    d3,d1
  153.     add.w    d1,d1
  154.     cmp.w    d2,d1
  155.     dbhi    d3,line3
  156. line3:    move.w    d3,d1
  157.     sub.w    d2,d1
  158.     bpl.s    line4
  159.     exg    d2,d3
  160. line4:    addx.w    d5,d5
  161.     add.w    d2,d2
  162.     move.w    d2,d1
  163.     sub.w    d3,d2
  164.     addx.w    d5,d5
  165.     and.w    #15,d0
  166.     ror.w    #4,d0
  167.     or.w    #$a4a,d0
  168. waitblt:btst    #6,2(a5)
  169.     bne.s    waitblt
  170.     move.w    d2,$52(a5)
  171.     sub.w    d3,d2
  172.     lsl.w    #6,d3
  173.     addq.w    #2,d3
  174.     move.w    d0,$40(a5)
  175.     move.b    oct(PC,d5.w),$43(a5)
  176.     move.l    d4,$48(a5)
  177.     move.l    d4,$54(a5)
  178.     movem.w    d1/d2,$62(a5)
  179.     move.w    d3,$58(a5)
  180. out:    
  181.     Movem.l    (A7)+,a0/d5
  182.     Dbf    D7,Dolines
  183.     Blitwait
  184.     Add.l    #10240-2,A0            ; Plane Size -2
  185.     Move.l    #$09f0000a,Bltcon0(a5)        ; D=A Desending And Fill
  186.     Move.l    #$ffffffff,bltafwm(a5)        ; Use All Bits And Why Not
  187.     Move.l    a0,bltapth(a5)            ; Set Ketchup
  188.     Move.l    a0,bltdpth(a5)            ; Set THE IN PLACE
  189.     Move.w    #0,Bltamod(a5)            ; Dont Skip 
  190.     Move.w    #0,Bltdmod(a5)            ; To My Loop
  191.     Move.w    #255*64+20,bltsize(a5)        ; Do The Full Screen
  192.     Rts
  193.     
  194. *****************************************************************************
  195.  
  196. oct:    dc.l    $3431353,$b4b1757   
  197. ScreenPtr
  198.     Dc.l    $70000
  199.     
  200. *****************************************************************************
  201.  
  202. UpDateAll
  203.     Lea    Form1,A0
  204.     Move.w    (A0)+,d7            ; Number Of Points On Lines
  205.     Move.l    #$01fe01fe,D0
  206.     Move.w    #16,d2
  207. Update
  208.     Move.l    8(A0),d1
  209.     Add.l    d1,(A0)
  210.     Move.l    12(A0),d1
  211.     Add.l    d1,4(A0)
  212.     And.l    D0,(A0)
  213.     And.l    D0,4(A0)
  214.     Lea    (a0,d2),a0
  215.     Dbf    D7,UpDate
  216.     Rts
  217.  
  218. *****************************************************************************
  219.  
  220. ; All copper list after here
  221.  
  222. Copper
  223.  
  224.     Spr_Off                    ; Switch sprites off
  225.     Cmove    $2c71,Diwstrt
  226.     Cmove    $2cc1,Diwstop
  227.     Cmove    $0038,Ddfstrt
  228.     Cmove    $00d0,Ddfstop
  229.     Cmove    $0000,Bpl1mod            
  230.     Cmove    -80,Bpl2mod
  231. ;    Cmove    $0000,Color00
  232.     Cmove    $0fff,Color01
  233.     Cmove    $0fff,Color02
  234.     Cmove    $0000,Color03
  235. Bit1
  236.     Cmove    $0000,Bpl1ptl
  237.     Cmove    $0007,Bpl1pth
  238. Bit2
  239.     Cmove    $2800,Bpl2ptl
  240.     Cmove    $0007,Bpl2pth
  241.     Cmove    $2200,Bplcon0
  242.     Endcop
  243.  
  244. *****************************************************************************
  245.  
  246. Posa    Macro
  247.     Dc.w    \1*2&$1fe,\2*2&$1fe,\3*2&$1fe,\4*2&$1fe,\5*2,\6*2,\7*2,\8*2
  248.     Endm
  249. Form1    
  250.     Include    Filled-Lines/Forms/Form1
  251.     
  252. *****************************************************************************
  253.  
  254. Conect    Macro
  255.     Dc.w    (\1*16),(\2*16)
  256.     Endm
  257. Form1Con
  258.     Include    Filled-Lines/Forms/Form1a
  259.     
  260. *****************************************************************************
  261.  
  262. ; X Sine Table
  263.  
  264. XSin
  265.     Rept    2
  266.     dc.w    159,159,159,159,159,158,158,158
  267.     dc.w    157,157,157,156,156,155,154,154
  268.     dc.w    153,152,151,151,150,149,148,147
  269.     dc.w    146,144,143,142,141,140,138,137
  270.     dc.w    136,134,133,131,130,128,127,125
  271.     dc.w    124,122,120,119,117,115,113,112
  272.     dc.w    110,108,106,104,103,101,99,97
  273.     dc.w    95,93,91,89,87,85,83,81
  274.     dc.w    80,78,76,74,72,70,68,66
  275.     dc.w    64,62,60,58,56,55,53,51
  276.     dc.w    49,47,46,44,42,40,39,37
  277.     dc.w    35,34,32,31,29,28,26,25
  278.     dc.w    23,22,21,19,18,17,16,15
  279.     dc.w    13,12,11,10,9,8,8,7
  280.     dc.w    6,5,5,4,3,3,2,2
  281.     dc.w    2,1,1,1,0,0,0,0
  282.     dc.w    0,0,0,0,0,1,1,1
  283.     dc.w    2,2,2,3,3,4,5,5
  284.     dc.w    6,7,8,8,9,10,11,12
  285.     dc.w    13,15,16,17,18,19,21,22
  286.     dc.w    23,25,26,28,29,31,32,34
  287.     dc.w    35,37,39,40,42,44,46,47
  288.     dc.w    49,51,53,55,56,58,60,62
  289.     dc.w    64,66,68,70,72,74,76,78
  290.     dc.w    80,81,83,85,87,89,91,93
  291.     dc.w    95,97,99,101,103,104,106,108
  292.     dc.w    110,112,113,115,117,119,120,122
  293.     dc.w    124,125,127,128,130,131,133,134
  294.     dc.w    136,137,138,140,141,142,143,144
  295.     dc.w    146,147,148,149,150,151,151,152
  296.     dc.w    153,154,154,155,156,156,157,157
  297.     dc.w    157,158,158,158,159,159,159,159
  298.     Endr
  299.     
  300. *****************************************************************************
  301.  
  302. ; Y Sine Table
  303.  
  304. YSin
  305.     Rept    2
  306.     dc.w    99,99,99,99,99,99,98,98
  307.     dc.w    98,98,98,97,97,97,96,96
  308.     dc.w    95,95,94,94,93,93,92,91
  309.     dc.w    91,90,89,89,88,87,86,85
  310.     dc.w    85,84,83,82,81,80,79,78
  311.     dc.w    77,76,75,74,73,72,71,70
  312.     dc.w    68,67,66,65,64,63,62,60
  313.     dc.w    59,58,57,56,54,53,52,51
  314.     dc.w    50,48,47,46,45,43,42,41
  315.     dc.w    40,39,37,36,35,34,33,32
  316.     dc.w    31,29,28,27,26,25,24,23
  317.     dc.w    22,21,20,19,18,17,16,15
  318.     dc.w    14,14,13,12,11,10,10,9
  319.     dc.w    8,8,7,6,6,5,5,4
  320.     dc.w    4,3,3,2,2,2,1,1
  321.     dc.w    1,1,1,0,0,0,0,0
  322.     dc.w    0,0,0,0,0,0,1,1
  323.     dc.w    1,1,1,2,2,2,3,3
  324.     dc.w    4,4,5,5,6,6,7,8
  325.     dc.w    8,9,10,10,11,12,13,14
  326.     dc.w    14,15,16,17,18,19,20,21
  327.     dc.w    22,23,24,25,26,27,28,29
  328.     dc.w    31,32,33,34,35,36,37,39
  329.     dc.w    40,41,42,43,45,46,47,48
  330.     dc.w    50,51,52,53,54,56,57,58
  331.     dc.w    59,60,62,63,64,65,66,67
  332.     dc.w    68,70,71,72,73,74,75,76
  333.     dc.w    77,78,79,80,81,82,83,84
  334.     dc.w    85,85,86,87,88,89,89,90
  335.     dc.w    91,91,92,93,93,94,94,95
  336.     dc.w    95,96,96,97,97,97,98,98
  337.     dc.w    98,98,98,99,99,99,99,99
  338.     Endr
  339.     
  340. *****************************************************************************
  341.  
  342.